package com.erp.order.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 新版交接单组包信息业务对象 erp_handover_orders_info
 *
 * @author erp
 * @date 2023-08-07
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpHandoverOrdersInfoBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 店铺ids
     */
    @NotBlank(message = "店铺ids不能为空", groups = { AddGroup.class, EditGroup.class })
    private String storeIds;

    /**
     * 订单ids
     */
    @NotBlank(message = "订单ids不能为空", groups = { AddGroup.class, EditGroup.class })
    private String orderIds;

    /**
     * LP单号列表;LP单号列表
     */
    @NotBlank(message = "LP单号列表;LP单号列表不能为空", groups = { AddGroup.class, EditGroup.class })
    private String orderCodeList;

    /**
     * 交接单id
     */
    @NotNull(message = "交接单id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long handoverOrderId;

    /**
     * 交接批次号，即交接单id;交接批次号，即交接单id
     */
    @NotNull(message = "交接批次号，即交接单id;交接批次号，即交接单id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long handoverContentId;

    /**
     * 交接物编码，即大包LP号;交接物编码，即大包LP号
     */
    @NotBlank(message = "交接物编码，即大包LP号;交接物编码，即大包LP号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String handoverContentCode;

    /**
     * 交接单面单
     */
    @NotBlank(message = "交接单面单不能为空", groups = { AddGroup.class, EditGroup.class })
    private String printData;

    /**
     * 揽收地址id;揽收地址id
     */
    @NotNull(message = "揽收地址id;揽收地址id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long pickupInfo;

    /**
     * 每个商家在ISV系统的唯一标识，一般为商家ISV账号的id
     */
    @NotBlank(message = "每个商家在ISV系统的唯一标识，一般为商家ISV账号的id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userInfo;

    /**
     * 交接单类型：cainiao_pickup(菜鸟揽收)、self_post(自寄)、self_send(自送)
     */
    @NotBlank(message = "交接单类型：cainiao_pickup(菜鸟揽收)、self_post(自寄)、self_send(自送)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * ISV名称，ISV：ISV-ISV英文或拼音名称、商家ERP：SELLER-商家英文或拼音名称
     */
    @NotBlank(message = "ISV名称，ISV：ISV-ISV英文或拼音名称、商家ERP：SELLER-商家英文或拼音名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String client;

    /**
     * 多语言
     */
    @NotBlank(message = "多语言不能为空", groups = { AddGroup.class, EditGroup.class })
    private String locale;

    /**
     * 大包备注;大包备注
     */
    @NotBlank(message = "大包备注;大包备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 交接物物流订单编号
     */
    @NotBlank(message = "交接物物流订单编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String orderCode;

    /**
     * 交接物运单号
     */
    @NotBlank(message = "交接物运单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String trackingNumber;

    /**
     * 交接物状态
     */
    @NotBlank(message = "交接物状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 交接物状态
     */
    @NotBlank(message = "交接物状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String statusName;

    /**
     * 是否已打印
     */
    @NotNull(message = "是否已打印不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isPrint;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;


}
